package apprentissage;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Apprentissage {

	private HashMap<String, Integer> beta1 = new HashMap<String, Integer>();
	private HashMap<String, Integer> beta2 = new HashMap<String, Integer>();
	
	private HashMap<String, Boolean> dicoTmp = new HashMap<String, Boolean>();
	
	public Apprentissage() {
	
	}
	
	public void apprend(int indice, ArrayList<String> dico) {
		File[] files = null; 
		
		for(String s : dico) {
			beta1.put(s, 0);
			beta2.put(s, 0);
		}
		
		for(int i=1; i<=10; i++) {
			if(i != indice) {
				// tester si non ponctuation
	        	Pattern pattern = Pattern.compile("[a-zA-Z]*");
			    // le repertoire à lire
				File directoryToScan = new File("/home/jerome/Bureau/TP1-EIT/lingspam/bare/part"+i); 
			    // les fichiers à lire
				files = directoryToScan.listFiles(); 
				// répertoire courant
				//System.out.println(directoryToScan.getAbsolutePath());
				
			    for( File fichier : files) {
			    	
			    	if(fichier != null) {
			    		
				    	//System.out.println(fichier.getName());
				    	
				    	// si c'est un fichier texte
				    	if(fichier.getAbsolutePath().endsWith(".txt")) {
				    		String ret ="";
			                try {
		                        FileReader fr;
		                        fr = new FileReader(fichier.getAbsolutePath()); 
		                        BufferedReader br = new BufferedReader(fr); 
		                        String s; 
		                        while((s = br.readLine()) != null) {  
		                                ret += "\n"+s;
		                        } 
		                        fr.close(); 
		                        
			                } catch(Exception e) {
			                        e.printStackTrace();
			                }
			                
			                // faire un strintokenizer sur ret
			                String[] cmd = ret.split("\\s");
				    		
			                for(String s : cmd) {
			                	Matcher matcher = 
			                        pattern.matcher(s);
	
			                	if(matcher.matches()) {
			                		dicoTmp.put(s, true);
			                	}	
			                }
			            }
			    	}
			    	//	remplir beta
			    	for(String str : dicoTmp.keySet()) {
			    		//if(dicoTmp.get(str) == true) {
			    			// tester si pourriel ou non
			    			if(fichier.getName().contains("spm")) {
			    				beta2.put(str, beta2.get(str)+1);
			    			}
			    			else {
			    				beta1.put(str, beta1.get(str)+1);
			    			}
			    		//}
			    	}
			    	dicoTmp.clear();
			    }
			}
		}
		/*for(String s : beta1.keySet()) {
			//System.out.println(s+" : "+beta1.get(s)+" vs. "+beta2.get(s));
			int i = beta2.get(s);
			if(i > 0) {
				//System.out.println(s+" apparait "+i+" fois");
			}
		}*/
		
	}

	public static void main(String[] args) {
		

	}

	public HashMap<String, Integer> getBeta1() {
		return beta1;
	}

	public HashMap<String, Integer> getBeta2() {
		return beta2;
	}

}
